//
//  LBRouterTypeDefine.h
//  LBRouter
//
//  Created by WuShiHai on 19/5/24.
//  Copyright (c) 2019 Lebbay. All rights reserved.
//

#ifndef LBRouterTypeDefine_h
#define LBRouterTypeDefine_h

/**
 Router处理的类型
 */
typedef NS_ENUM(NSInteger, LBRouterType) {
    /** 什么都没有识别出来 */
    LBRouterTypeNone = 0,
    /** 识别出来为原生controller */
    LBRouterTypeNativeController,
    /** 识别出来为原生controller */
    LBRouterTypeReactNativeController,
    /** 识别出来为webView */
    LBRouterTypeWebView,
    /** 识别出来为原生方法 */
    LBRouterTypeNativeMethod,
    /** 识别出来为原生回调 */
    LBRouterTypeNativeCallback,
};

/**
 *  routerParameters 里内置的几个参数会用到上面定义的 string
 */
typedef void (^LBRouterResultHandler)(NSDictionary *routerParameters);

/**
 *  需要返回一个 object，配合 objectForURL: 使用
 */
typedef id (^LBRouterObjectHandler)(NSDictionary *routerParameters);


/**
 完成解析url后的回调
 
 @param URLString 解析的地址
 @param paths 除去参数、host、scheme后的部分
 @param userInfo url 问号后面参数解析得到的字典
 */
typedef void (^LBRouterOpenURLCompleteHandler)(LBRouterType type, NSString *URLString, NSString *paths, NSDictionary *userInfo);


#endif /* LBRouterTypeDefine_h */
